package com.cfs.daoimpl.sys;

import java.util.ArrayList;
import java.util.List;

import com.cfs.po.sys.Org;
import com.cfs.po.sys.UserRole;

/**
 *	
 *	@author wang.yujie
 * 	@since 2012-12-26
 *	@version 1.0
 */
public class UserRoleDao extends Dao {
	
	/**
	 * 新增数据
	 * @param userRole
	 * @return
	 */
	public int save(UserRole[] userRoles) {
		String sql = DB_SQL.USER_ROLE_INS;
		return saveUpdateUtil(userRoles, sql);
	}
	
	/**
	 * 更新
	 */
	public int update(UserRole[] userRoles){
		String sql = DB_SQL.USER_ROLE_UPD_BY_ID;
		return saveUpdateUtil(userRoles, sql);
	}
	
	/**
	 * 删除
	 */
//	public int delete(long[] ids) {
//		
//	}
	
	/**
	 * 根据orgid获取userid
	 */
//	public long[] getUserIdByOrgId(long roleId) {
//		String sql = DB_SQL.USER_ROLE_QUERY_ROLEID_BY_USERID;
//		List<Long> roleids = jdbcTemplate.queryForList(sql, java.lang.Long.class);
//		long[] ids = new long[roleids.size()];
//		for(int i = 0 ; i < roleids.size(); i++) {
//			ids[i] = roleids.get(i);
//		}
//		return ids;
//	}
	
	/**
	 * 根据userid获取roleid
	 */
//	public long[] getRoleIdByUserId(long userId) {
//		String sql = DB_SQL.USER_ROLE_QUERY_ROLEID_BY_USERID;
//		List<Long> roleids = jdbcTemplate.queryForList(sql, java.lang.Long.class);
//		long[] ids = new long[roleids.size()];
//		for(int i = 0 ; i < roleids.size(); i++) {
//			ids[i] = roleids.get(i);
//		}
//		return ids;
//	}
	
	/**
	 * 新增更新通用方法
	 * @param userRoles
	 * @param sql
	 * @return
	 */
	public int saveUpdateUtil(UserRole[] userRoles, String sql) {
		
		List<Object[]> paramList = new ArrayList<Object[]>();
		for (UserRole userRole : userRoles) {
			for(Org org : userRole.getOrgs()){
				paramList.add(new Object[] { userRole.getUserid(), userRole.getRole(), org.getId()});
			}
		}
		int[] rows = jdbcTemplate.batchUpdate(sql, paramList);
		int p = 0;
		for(int x : rows) {
			if(x == 1) p++;
		}
		System.out.println("add userRole " + p);
		return p;
	}

}
